package com.waitingsnow.common.share.netEaseMicroblog.users
{
	import com.waitingsnow.common.share.bridia.net.oauth.BDOAuthConnection;
	import com.waitingsnow.common.share.netEaseMicroblog.NEMicroblog;
	import com.waitingsnow.common.share.netEaseMicroblog.data.NEMConfig;
	import com.waitingsnow.common.share.netEaseMicroblog.data.NEMObject;
	
	/**
	 * 
	 * @author Tensharp
	 * 
	 * <p>包含了所有的用户接口.</p>
	 * 
	 */	
	
	public class NEMUsers extends NEMObject
	{
		/**
		 * 
		 * <p>创建一个新的NEMUsers对象</p>
		 * 
		 * @param parent 上级对象.(NEMicroblog)
		 * @param oauth OAuth链接
		 * 
		 */		
		
		public function NEMUsers(parent:NEMicroblog, oauth:BDOAuthConnection)
		{
			super(parent, oauth);
		}
		
		///
		///	[User show]
		///
		
		/**
		 * 
		 * <p>users/show</p>
		 * <p>获取指定用户信息。</p>
		 * 
		 * <ul>
		 * 	<li>user_id、name、screen_name三个参数如果都不传，则返回当前用户信息；</li>
		 * 	<li>如果用户通行证身份验证成功且用户已经开通微博则返回http状态为200；</li>
		 * 	<li>如果不是则返回401的状态和错误信；</li>
		 * 	<li>据参数查找不到对应的用户则返回404的状态和错误信息。</li>
		 * </ul>
		 * 
		 * @param id 			可选参数 : 用户的个性网址或用户ID；
		 * @param name 			可选参数 : 用户的昵称；
		 * @param user_id 		可选参数 : 用户ID
		 * @param screen_name 	可选参数 : 用户的个性网址
		 * 
		 */		
		
		public function user_show (id:String = null, name:String = null, user_id:String = null, screen_name:String = null):void
		{
			oauth.addOAuthParameters ("id", id, true);
			oauth.addOAuthParameters ("name", name, true);
			oauth.addOAuthParameters ("user_id", user_id, true);
			oauth.addOAuthParameters ("screen_name", screen_name, true);
			
			super.connect ("USER_SHOW");
		}

		///
		///	[Suggestions]
		///
		
		/**
		 * 
		 * <p>users/suggestions</p>
		 * <p>返回用户可能感兴趣的用户，随机返回指定数目的用户。</p>
		 * <p>如果未登录返回401，找不到任何推荐用户返回404。</p>
		 * 
		 * @param count 	可选参数 : 指定随机返回的用户数目。默认为30个，最多返回30个；
		 * @param trim_user 可选参数 : 值为true时返回最基本的用户数据，使用此参数可以减少返回数据量，默认为false；
		 * 
		 */	 
		
		public function suggestions(count:int = 30, trim_user:Boolean = false):void
		{
			oauth.addOAuthParameters ("count", count.toString(), false);
			oauth.addOAuthParameters ("trim_user", trim_user.toString(), false);
			
			
			super.connect ("SUGGESTIONS");
		}

		///
		///	[Suggestions i followers]
		///
		
		/**
		 * 
		 * <p>users/suggestions_i_followers</p>
		 * <p>获取推荐的I达人的用户列表。</p>
		 * <p>此API无需登陆，找不到任何推荐用户返回404。</p>
		 * 
		 * @param cursor 	可选参数 : 分页参数
		 * @param trim_user 可选参数 : 值为true时返回最基本的用户数据，使用此参数可以减少返回数据量，默认为false；
		 * 
		 */
		
		public function suggestions_i_followers (cursor:int = 30, trim_user:Boolean = false):void
		{
			oauth.addOAuthParameters ("cursor", cursor.toString(), false);
			oauth.addOAuthParameters ("trim_user", trim_user.toString(), false);
			
			super.connect ("SUGGESTIONS_I_FOLLOWERS");
		}
		
		///
		///	[User groups]
		///
		
		/**
		 * 
		 * <p>users/groups</p>
		 * <p>查询当前登录用户创建的所有分组</p>
		 * 
		 */
		
		public function user_groups ():void
		{
			super.connect ("USER_GROUPS");
		}
		
		///
		///	[Modify user groups]
		///
		
		/**
		 * 
		 * <p>users/modify_user_groups</p>
		 * <p>修改一个已关注用户的组（放进多个组或从组中移除）</p>
		 * 
		 * @param user_id 	必选参数 : 需要修改的用户id
		 * @param group_ids 必选参数 : 把用户放进这些组里面，空白代表全部删除.如：group_ids=1,2,3 把用户放进1,2,3三个组中。group_ids=1,3，用户从2中移除。group_ids=表示全部移除
		 * 
		 */
		
		public function modify_user_groups (user_id:String, group_ids:String):void
		{
			oauth.addOAuthParameters ("user_id", user_id.toString(), false);
			oauth.addOAuthParameters ("group_ids", group_ids.toString(), false);
			
			super.connect ("MODIFY_USER_GROUPS");
		}
	}
}